﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace BanHangCshap
{
    /// <summary>
    /// Truyền thông báo Load dữ liệu
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    public delegate void MyEvent_LoadData(object sender, ELoadData e);
    /// <summary>
    /// Thông tin thông báo Load dữ liệu
    /// </summary>
    public class ELoadData : EventArgs
    {
        public bool IsLoadData { get; set; }
    }
    
    /// <summary>
    /// Sự kiện đăng nhập
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    public delegate void MyEvent_Login(object sender, infoLogin e);
    public class infoLogin: EventArgs
    {
        public Guid Id { get; set; }
        public string Ma { get; set; }
        public string Ten { get; set; }
        public Guid Id_Nhomnguoidung { get; set; }
    }

    public static class SDN
    {
        public static DateTime LayNgaydauthang()
        {
            string SDate = DateTime.Now.ToString("dd/MM/yyyy");
            string GetMonth = SDate.Substring(3, 2);
            return DateTime.ParseExact(String.Format("01/{0}/{1}", GetMonth, DateTime.Now.Year), "dd/MM/yyyy", null);
        }
    }

    public static class GridLocal
    {
        /// <summary>
        /// Gọi trong sự kiện lăng chuột của grid
        /// Cho pép cuộn grid và không thay đổi giá trị trên những cột của grid 
        /// </summary>
        /// <param name="g"></param>
        /// <param name="e"></param>
        public static void GridMouseWheel(this DevExpress.XtraGrid.Views.Grid.GridView g, MouseEventArgs e)
        {
            g.CloseEditor();
            if (e.Delta < 0)
                g.MoveNext();
            else if (e.Delta > 0)
                g.MovePrev();
            DevExpress.Utils.DXMouseEventArgs.GetMouseArgs(e).Handled = true;
        }

        /// <summary>
        /// Gọi trong sự kiện spin của những các control có spin
        /// Cho pép cuộn grid và không thay đổi giá trị trên những cột của grid
        /// </summary>
        /// <param name="sender">Truyền vô giải trí, cho biết là cái control nào đang bắt spin</param>
        /// <param name="e"></param>
        /// <param name="g">Cái control nào</param>
        public static void ControlInGridSpin(this object sender, DevExpress.XtraEditors.Controls.SpinEventArgs e, DevExpress.XtraGrid.Views.Grid.GridView g)
        {
            e.Handled = true;
            if (e.IsSpinUp)
            {
                g.MovePrev();
            }
            else g.MoveNext();
        }


        ////int x = g.TopRowIndex;
        //    e.Handled = true;
        //    //g.TopRowIndex += e.IsSpinUp ? -3 : 3;
        //    //if (x==g.TopRowIndex)
        //    {
        //        if (e.IsSpinUp)
        //        {
        //            g.MovePrev();
        //        }
        //        else g.MoveNext();
        //    }
    }
}



